1. BACKGROUND OF THE INVENTION . . .
1.1 FIELD OF THE INVENTION . . .
1.2 THE RELATED ART . . .
2. SUMMARY OF THE INVENTION . . .
3. BRIEF DESCRIPTION OF THE DRAWINGS . . .
4. DESCRIPTION OF SOME EMBODIMENTS OF THE INVENTION . . .
5. CONCLUSION . . .
1.1 Field of the Invention
The present invention relates to computer network architectures and, more specifically, to software for managing computer and communications networks. More particularly, the present invention provides software, systems, and apparatus for managing software entities and hardware over a computer network. The present invention has applications in the areas of computer science, computer network management, and computer software.
1.2 The Related Art
The demands on computer network managers have grown exponentially as the size and extensiveness of computer networks has grown over the past decade. Starting from the relatively simple task of maintaining communication among a relatively small number of mainframe computers, network managers must now coordinate operations among thousands of computers, printers, servers, and other networked devices. With the advent of the Java(copyright) and Jini(trademark) programming languages, even household devices will soon become linked over computer networks running on household xe2x80x9cintranetsxe2x80x9d that in turn are linked to the worldwide Internet. Thus, there appears to be no end in sight to the increasing burden on network managers.
To control and coordinate the software associated with the myriad of networked computers and other devices, network managers employ software designed to track, establish communications with, and control various software entities or processes that exist independently or represent the networked devices. Entities that represent networked devices are also referred to herein as xe2x80x9cagentsxe2x80x9d. The software used by the network manager interacts with various xe2x80x9cplatform-levelxe2x80x9d software services to enable the network manager to locate and interact with the various entities running on the network. Various services are provided to identify the entities, retrieve needed data about the properties and states of the entities, and store that information for use by other entities and user applications. In particular, a topology service is used to store information about the entities and devices and their relationships.
Generally, production of software for network use is cumbersome and expensive. For example, to create the various software applications, agents, and other entities resident on the network, programmers have to be fluent in languages and APIs such as PMI, C++, GDMO, and ASN1. The new software then has to be debugged prior to installation, and, once installed, creates a new level of complexity for the network manager. Production of such software is expensive, as relatively few programmers have the requisite familiarity with the diverse and arcane languages required to write network software. Once written, additional expenses are incurred in the cycle of debugging and upgrading.
The Java programming language has emerged as a tool for producing software efficiently. In particular, the combination of Java programming code and the Java Virtual Machine (xe2x80x9cJVMxe2x80x9d) allows the creation of platform-independent software that can be installed dynamically and/or remotely. Thus, the use of Java-coded network software applications, agents, and other entities can alleviate the above-described expenses and difficulties associated with producing network management software using traditional languages and methods. In addition, the Java programming language is richer than the languages used currently to provide network management software. Thus, Java-based software management software application, agents, and entities having more functionality can be developed.
However, the provision of several programming tools would facilitate writing Java network management software and install those applications on systems using GDMO/CMIS objects. These tools include tools capable of translating JavaBean classes into their corresponding GDMO objects, a device to map GDMO CMIS requests into JavaBean Java Dynamic Management Kit (xe2x80x9cJDMKxe2x80x9d), and a mechanism to translate JDMK JavaBean events to CMIS notifications. Therefore, it would be beneficial to provide such tools for producing Java-based computer network management software. The present invention meets these and other needs.
The present invention meets the above-described needs by providing, in one aspect, programming tools that facilitate writing and incorporating Java network management software for computer and communications network management architectures. The software, systems, and methods provided by the present invention will thus allow computer network programmers and managers easier access to the benefits provided by the Java programming language. These benefits include faster development time, greater access to programmer talent, and easier implementation.
In a fist aspect, the present invention provides a method for creating and managing a computer network management agent that includes a Java development management kit (xe2x80x9cJDMKxe2x80x9d)-created object. In one embodiment, the method provided by the present invention a JDMK agent object configured to provide computer network management functions is created. Address, type, and object class information are provided for the JDMK agent object. The JDMK agent object is installed on the computer network. In another embodiment, the method of the invention includes communicating with the JDMK agent object over the computer network. In a more specific embodiment, the step of providing address, type, and object class information includes the substeps of (1) providing a distinguished name for the JDMK agent object, (2) providing attributes for the JDMK agent object, (3) forming a connection with the JDMK agent object, and (4) forming a JDMK agent object name for said JDMK agent object.
In another aspect, the present invention provides a method for managing a JDMK agent object. In one embodiment, a method for managing a JDMK agent object includes providing a distinguished name for said JDMK agent object. Attributes are provided for the JDMK agent object, and a connection is formed with the JDMK agent object. The supported classes for the JDMK agent object are determined, and the JDMK agent object is retrieved according to the determined classes. The JDMK agent object is then translated into a network communication protocol or language, such as GDMO. In addition, a variety of operations can be performed on the JDMK agent object including, but not limited to, getter, setter, deletion, and action operations.
In still another aspect, the management of the JDMK agent object is performed in conjunction with a daemon that listens for notifications indicating a change has been made to the JDMK agent object. In one embodiment, a method for managing a JDMK agent object includes creating a GDMO name for an event signaling that said JDMK agent has been changed. A notification of the event is then created. If the event signals an agent object creation/deletion event, then the event is forwarded. If the event does not signal an agent object creation/deletion event, then the perceived event severity is determined. In a more specific embodiment, get operations for getters included with the agent object are performed and all text methods are concatenated.
In yet another aspect, the present invention includes a daemon configured to monitor for, and report the occurrence of, events regarding a JDMK agent object. According to one embodiment, a daemon provided by the present invention includes a first translation mechanism configured to translate messages from a JDMK agent object from JDMK-encoding into Java encoding. The first translation mechanism is coupled with a second translation mechanism configured to translate messages encoded in Java into a computer network communication protocol. In a more specific embodiment, the first translation mechanism is coupled with a JDMK agent object. In a still more specific embodiment, the first translation mechanism is coupled with a JDMK agent object and t he second translation mechanism is coupled with a management information server.
In another aspect, the present invention provides computer-readable media and data signals configured to cause a computer to create a JDMK agent object configured to provide computer network management functions. The media and data signals are also configured to cause a computer to provide address, type, and object class information for the JDMK agent and install the agent on the computer network.
In a more specific embodiment, the network communications protocol or language is GDMO. In another embodiment, each Java-defined object class of the computer network management software onto a corresponding GDMO class. Each getter, setter, and isxxx statement of the computer network management software into a corresponding GDMO statement. Event-specific class and perform method of the computer network management software is mapped into a corresponding GDMO statement.
In another aspect, the present invention provides computer-readable media and data signals that are configured to cause a computer to perform the computer-implemented steps of translating Java-defined objects and methods into a computer network communications protocol or language. The computer-readable media and signals further include code devices configured to cause a computer to create a document including these translated objects and methods and install the document in a management information server. The computer-readable media and signals further include code devices configured to cause a computer to configure and locate an object in the management information server to represent the computer network management software. This object is used to communicate with the computer network management software.
These and other aspects and advantages will become apparent when the Description below is read in conjunction with the accompanying Drawings.